const express = require('express')
const router = express.Router();// 内置的路由中间件
const fs = require('fs')
const path = require('path');
const userData = require('../mock/user.json')
const listData = require('../mock/list.json')

// 路由接口  数据接口
router.get('/', (req, res, next) => {
  res.render('login', {
    title: '首页路由'
  })
})

router.get('/register', (req, res, next) => {
  res.render('register', {
    title: '注册页面'
  })
})

router.get('/product', (req, res, next) => {
  res.render('product', {
    title: '注册页面',
    data: listData
  })
})

router.get('/form', (req, res, next) => {
  res.render('form')
})



// 数据接口
router.post('/api/login', (req, res, next) => {

  const { user, pwd } = req.body;
  console.log(user, pwd, 'req')
  // 进入登陆接口判断数据库中有没有，如果有 登陆成功，反之亦然
  console.log(userData, 'userData')
  const flag = userData.some(v => v.user === user && v.pwd === pwd)
  if (flag) {
    res.send({
      code: 0,
      msg: 'success',
    })
  } else {
    res.send({
      code: -1,
      msg: 'fail',
    })
  }
})


// 注册接口
router.post('/api/register', (req, res, next) => {
  // 1. 获取参数
  const { user, pwd } = req.body;
  // 2. 判断有没有
  const flag = userData.some(v => v.user === user && v.pwd === pwd)
  if (flag) {
    res.send({
      code: -1,
      msg: '已经注册',
    })
  } else {
    userData.push(req.body);
    fs.writeFileSync('./mock/user.json', JSON.stringify(userData));
    res.send({
      code: 0,
      msg: '注册成功',
    })
  }
})

// 增 
router.post('/api/add', (req, res, next) => {
  let length = listData.length
  let id = length += 1; // id自增
  listData.push({ id, ...req.body })
  // 把增加数据的id返回出去，或者当前数据返回
  fs.writeFileSync('./mock/list.json', JSON.stringify(listData))
  res.send({
    code: 0,
    msg: 'success',
    data: listData
  })
})

// 删除
router.get('/api/delete', (req, res, next) => {
  // 1. 获取数据id
  const { index } = req.query;
  // 2. 删除数据
  listData.splice(index, 1)
  // 3. 更新数据库  将删除后的数据写入json
  fs.writeFileSync('./mock/list.json', JSON.stringify(listData))
  // 4. 将结果返回
  res.send({
    code: 0,
    msg: 'success',
    data: listData
  })
})


// 列表接口 查询所有数据接口 返回所有的数据
router.get('/api/list', (req, res, next) => {
  res.send({
    data: listData,
    total: listData.length,
    code: 0,
    msg: 'success',
  })
})

// 模糊搜索接口 根据用户输入的关键字 查询整条数据，并返回 
router.get('/api/search', (req, res, next) => {
  // 1. 接收用户输入的关键字
  const { keyword } = req.query;
  // 2. 过滤数据库中的数据，
  const arr = listData.filter(v => {
    if (v.user.includes(keyword)) {
      return v
    }
  })
  // 3. 判断，找到 没找到
  if (arr.length) {
    res.send({
      data: arr,
      code: 0,
      msg: 'success',
    })
  } else {
    res.send({
      code: -1,
      msg: '未能查找到数据',
    })
  }
})

// 修改接口
router.post('/api/update', (req, res, next) => {
  const { index, id, user, address, gender } = req.body;
  listData.splice(index, 1, {
    id,
    user,
    address,
    gender
  })
  res.send({
    code: 0,
    id
  })
})




module.exports = router;